package com.huluobo.kotlindemoim1911a2.contract.login

import com.huluobo.kotlindemoim1911a2.base.BasePresenter

/**
 * Created by lc on 2022/10/18.
 * 协议层中主要放的P层 V层 M层,P层主要负责V层和M层连接,
 * M层主要负责网络请求,V层主要负责数据展示,所以P层就是需要何时触发网络连接的功能
 * V层中的方法,全部都是由于P层中的网络连接产生的后果出现的反馈
 */
class LoginContract {
    //实现的功能(需要网络连接进行反馈的功能,业务逻辑)
    interface Presenter : BasePresenter {
        fun login(userName: String, password: String)
    }

    //UI的反馈
    interface View {
        fun onUserNameError()//根据参数Username如果输出错误的UI反馈
        fun onPasswordError()//根据参数password如果输出错误的UI反馈
        fun onStartLogin()//为了触发登录进度条
        fun onLoggedInSuccess()//触发网络连接后产生的后果,成功的回调
        fun onLoggedInFailed(message: String?)//触发网络连接后产生的后果,失败的回调
    }
}